#include "chooselevelscene.h"
#include<QMenuBar>
#include<QPainter>
#include<pushbutton.h>
#include<QDebug>
#include<QTimer>
#include<QLabel>
ChooseLevelScene::ChooseLevelScene(QWidget *parent) : QMainWindow(parent)
{
    //配置选择关卡的场景
    this->setFixedSize(430,670);

    //设置图标
    this->setWindowIcon(QPixmap(":/new/prefix1/pic/coind.png"));

    //设置标题
    this->setWindowTitle("赶紧选一关，别磨叽了");//选择关卡上的标题

    //创建菜单栏
      QMenuBar * bar=menuBar();
      setMenuBar(bar);
    //创建开始菜单
     QMenu * startMenu=bar->addMenu("开始");
     //创建退出菜单项
     QAction * quitAction=startMenu->addAction("又不想玩了？");

     //点击退出，实现退出游戏
     connect(quitAction,&QAction::triggered,[=](){
         this->close();
     });

     //返回按钮
     pushbutton * backBtn = new pushbutton(":/new/prefix1/pic/BackButton.png",":/new/prefix1/pic/BackButtonSelected.png");
     backBtn->setParent(this);
     backBtn->move(this->width()-backBtn->width(),this->height()-backBtn->height());//横纵坐标

     //点击返回
     connect(backBtn,&pushbutton::clicked,[=](){
         //qDebug() <<"点击了返回按钮";
         //告诉第二场景 我返回了 第二场景要监听一下playscene的返回
         //延时返回
         QTimer::singleShot(300,this,[=](){
             emit this->ChooseSceneBack();
         });

     });
     //创建选择关卡的按钮
     for(int i=0;i<20;i++)
     {
         pushbutton * menuBtn = new pushbutton(":/new/prefix1/pic/LevelIcon.png");
         menuBtn->setParent(this);
         menuBtn->move(75+i%4 *70,200+i/4 *70);//选择关卡按钮位置
         //监听每个按钮的点击事件
         connect(menuBtn,&pushbutton::clicked,[=](){
             QString str =  QString ("您选择的是第%1关").arg(i+1);
             qDebug()<<str;

             //键入到游戏场景
             this->hide();//隐藏选关场景
             play=new PlayScene(i+1);//创建关卡场景
             play->show();//显示关卡场景
             connect(play,&PlayScene::ChooseSceneBack,[=](){
                 this->show();
                 delete play;
                 play=NULL;
             });//二场景监听三场景
         });
         QLabel * label=new QLabel;
         label->setParent(this);
         label->setFixedSize(menuBtn->width(),menuBtn->height());//设置关卡上的数字并使其大小与按钮一致
         label->setText(QString::number(i+1));
         label->move(75+i%4 *70,200+i/4 *70);

         //设置label上文字的对齐方式
         label->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);//设置水平居中和垂直居中
         //设置让鼠标进行穿透   51号属性
         label->setAttribute(Qt::WA_TransparentForMouseEvents);




     }
}

void ChooseLevelScene::paintEvent(QPaintEvent *){
  //加载背景
  QPainter painter(this);
  QPixmap pix;
  pix.load(":/new/prefix1/pic/back2.jpg");
  painter.drawPixmap(0,0,this->width(),this->height(),pix);

  pix.load(":/new/prefix1/pic/omo.png");
  painter.drawPixmap((this->width()-pix.width())*0.1,20,pix.width()*0.8,pix.height()*0.8,pix);

}
